﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Activities;
using Microhard.NotificationTypes.Models;

namespace Microhard.CustomActivities.Activities
{
    public interface IApproveFlowActivity
    {
        /// <summary>
        /// 是否是退回流程
        /// </summary>
        /// <param name="workflowInstanceID"></param>
        /// <returns></returns>
        bool IsRollback(Guid workflowInstanceID);
        /// <summary>
        /// 获得activity上的操作人
        /// </summary>
        /// <param name="flowChartID"></param>
        /// <param name="activityID"></param>
        /// <returns></returns>
        List<User> GetOperatorIDs(Guid flowChartID, Guid activityID);
        /// <summary>
        /// 记录当前activity状态
        /// </summary>
        void RecordStatus(NativeActivityContext context);
        /// <summary>
        /// 发送操作提醒消息
        /// </summary>
        void SendNotifications(NativeActivityContext context);
        /// <summary>
        /// 移动到下一个节点
        /// </summary>
        void MoveToNext(NativeActivityContext context);
        /// <summary>
        /// 获得属性值
        /// </summary>
        /// <param name="context"></param>
        void GetPropertiesValue(NativeActivityContext context);
    }
}
